package cn.iocoder.yudao.module.promotion.redpacket.pojo.vo;

import cn.iocoder.yudao.framework.business.basic.annotation.AdminJsonView;
import cn.iocoder.yudao.framework.business.basic.annotation.AppJsonView;
import cn.iocoder.yudao.framework.business.basic.pojo.vo.MemberScopeVO;
import cn.iocoder.yudao.framework.validation.InEnumValue;
import cn.iocoder.yudao.module.api.promotion.redpacket.enums.RedPacketSourceEnum;
import com.fasterxml.jackson.annotation.JsonView;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * <pre>
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 * 视图对象
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 * </pre>
 *
 * @author 山野羡民（1032694760@qq.com）
 * @since 2025/06/21
 */
@Data
public class RedPacketRecordVO extends MemberScopeVO {

    @Schema(description = "店铺编号")
    @JsonView({AdminJsonView.class, AppJsonView.class})
    private Long shopId;

    @Schema(description = "红包来源(0新客红包,1消费红包)")
    @InEnumValue(RedPacketSourceEnum.class)
    private Integer source;

    @Schema(description = "来自交易单号")
    private String fromTradeNo;

    @Schema(description = "红包金额，单位为分")
    @JsonView({AdminJsonView.class, AppJsonView.class})
    private Integer amount;

    @Schema(description = "发放时间")
    @JsonView({AdminJsonView.class, AppJsonView.class})
    private LocalDateTime grantedTime;

    @Schema(description = "生效时间")
    private LocalDateTime effectTime;

    @Schema(description = "过期时间")
    @JsonView({AdminJsonView.class, AppJsonView.class})
    private LocalDateTime expiredTime;

    @Schema(description = "备注")
    @JsonView({AdminJsonView.class, AppJsonView.class})
    private String remark;

}
